package CharliesCookies;

import Imagenes.FondoMainMenu;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;

public class MainMenuGUI extends javax.swing.JFrame {

    public static String tituloPrincipal = "Charlie And The Cookie Factory System";
    //private final JPanelConFondo contenedor = new JPanelConFondo("../Imagenes/wall.png");
    Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
    protected JMenuBar menuBar;
    private JPanel sesionPanel = new JPanel();
    private JPanel cont = new JPanel();

    public MainMenuGUI() {
        FondoMainMenu p = new FondoMainMenu();
        p.setBorder(new EmptyBorder(5, 5, 5, 5));
        p.setLayout(new BorderLayout(0, 0));
        setContentPane(p);

        menuBar = new JMenuBar();
        menuBar.setOpaque(false);
        menuBar.setBorderPainted(false);
        setJMenuBar(menuBar);
        addAdministracionMenu("Administracion");
        menuBar.add(Box.createHorizontalGlue());
        addComprasMenu("Compras");
        menuBar.add(Box.createHorizontalGlue());
        addLogisticaMenu("Logistica");
        menuBar.add(Box.createHorizontalGlue());
        addVentasMenu("Ventas");
        menuBar.add(Box.createHorizontalGlue());
        addSeguridadMenu("Seguridad");
        menuBar.add(Box.createHorizontalGlue());
        addProduccionMenu("Produccion");
        menuBar.add(Box.createHorizontalGlue());
        menuBar.add(Box.createHorizontalGlue());
        menuBar.add(Box.createHorizontalGlue());
        menuBar.add(Box.createHorizontalGlue());
        addExitMenu("");

        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        initComponents();
        setLocationRelativeTo(null);
        this.setTitle(tituloPrincipal);
        this.setSize(dim);
        //this.setResizable(false);
        try {
            setIconImage(new ImageIcon(getClass().getClassLoader().getResource("Imagenes/hombre_icono.png")).getImage());
        } catch (Exception ex) {
        }
//        test = new JPanelConFondo("../Imagenes/wall.png");
//        setContentPane(test);

    }

    public void addAdministracionMenu(String title) { //0
        JMenu m = (JMenu) menuBar.add(new JMenu(title));
        m.setForeground(Color.BLACK);
        m.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imagenes/suppliers.png")));
        m.add("Mant Empleados"); //0
        m.add("Mant Maquinaria"); //1
        m.add(new JSeparator(SwingConstants.HORIZONTAL));
        m.add("Carga Masiva"); //2
    }

    public void addComprasMenu(String title) {//2
        JMenu m = (JMenu) menuBar.add(new JMenu(title));
        m.setForeground(Color.BLACK);
        m.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imagenes/basket.png")));
        m.add("Mant Proveedores"); //0
        m.add("Ingreso Materia Prima"); //1
//        m.add("Cuenta por Pagar"); //2
        m.add("Orden de Compra"); //3
    }

    public void addLogisticaMenu(String title) {//4
        JMenu m = (JMenu) menuBar.add(new JMenu(title));
        m.setForeground(Color.BLACK);
        m.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imagenes/shipping.png")));
        m.add("Mant Producto");//0
        m.add("Mant Almacen");//1
//        m.add("Autorizar Pedido de Producto");//2
        m.add("Pedido de Produccion");//3
        m.add("Pedido de Compra");//4
        m.add("Ajustes de Almacen");//5
        m.add("Kardex");//6
        m.add("Procesar Pedido");//7
//        m.add("Producir Pedidos");//8
        m.add(new JSeparator(SwingConstants.HORIZONTAL));
        m.add("Reporte de Productos");//9
        m.add("Reporte de Kardex");  //10
    }

    public void addVentasMenu(String title) {//6
        JMenu m = (JMenu) menuBar.add(new JMenu(title));
        m.setForeground(Color.BLACK);
        m.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imagenes/invoice.png")));
        m.add("Clientes");//0
        m.add("Pedidos");//1
        m.add("Documento de Venta");//2
        m.add("Presentaciones");//3
        m.add("Precios");//4
        m.add(new JSeparator(SwingConstants.HORIZONTAL));
        m.add("Reporte de Ventas");//5
    }

    public void addSeguridadMenu(String title) {//8
        JMenu m = (JMenu) menuBar.add(new JMenu(title));
        m.setForeground(Color.BLACK);
        m.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imagenes/lock.png")));
        m.add("Usuarios");//0
        m.add("Perfiles");//1
        m.add(new JSeparator(SwingConstants.HORIZONTAL));
        m.add("Reporte de LOG"); //2
    }

    public void addProduccionMenu(String title) {//10
        JMenu m = (JMenu) menuBar.add(new JMenu(title));
        m.setForeground(Color.BLACK);
        m.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imagenes/settings.png")));
        m.add("Simulacion");//0
        m.add("Parametros Simulacion");//1
        m.add("Orden Produccion");//2
//        m.add("Carga Masiva");//3
        m.add("Atender Pedidos Produccion");//4
        m.add("Plan de Produccion"); //5
    }

    public void addExitMenu(String title) {
        //JButton b = new JButton(title,new ImageIcon(getClass().getResource("../Imagenes/Logout.png")));
        JMenu m = (JMenu) menuBar.add(new JMenu(title));
        m.setForeground(Color.BLACK);
        ImageIcon iconoSalida = new ImageIcon(getClass().getClassLoader().getResource("Imagenes/Logout.png"));
        m.setIcon(iconoSalida);
        m.add("Salir");
    }

//    public void llenarPanelInfo(Usuario usr) {
//        JLabel nombre = null;
//        JLabel fecha = null;
//        
//        sesionPanel.add(new JLabel("Usuario:\n"));
//        
//        sesionPanel.add(nombre = new JLabel(usr.getEmpleado().getNombre() + " " + usr.getEmpleado().getApPaterno() + " " + usr.getEmpleado().getApMaterno() + "\n"));
//        
//        sesionPanel.add(new JLabel("Fecha:\n"));
//        
//        String nuevaFecha= new String();
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//        nuevaFecha = sdf.format(new Date());
//        sesionPanel.add(fecha = new JLabel(nuevaFecha));
//    }
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jMenuItem2 = new javax.swing.JMenuItem();
        jMenu3 = new javax.swing.JMenu();
        jMenu4 = new javax.swing.JMenu();
        jMenu2 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenuItem10 = new javax.swing.JMenuItem();
        jMenuItem22 = new javax.swing.JMenuItem();
        jMenuItem23 = new javax.swing.JMenuItem();

        jMenuItem2.setText("jMenuItem2");

        jMenu3.setText("jMenu3");

        jMenu4.setText("jMenu4");

        jMenu2.setText("jMenu2");

        jMenuItem1.setText("jMenuItem1");

        jMenuItem3.setText("jMenuItem3");

        jMenuItem10.setText("jMenuItem10");

        jMenuItem22.setText("jMenuItem22");

        jMenuItem23.setText("jMenuItem23");

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        setMaximumSize(new java.awt.Dimension(400, 400));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 594, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 186, Short.MAX_VALUE)
        );

        getAccessibleContext().setAccessibleDescription("");
    }// </editor-fold>//GEN-END:initComponents

    private void jMenuItem14ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem14ActionPerformed
    }//GEN-LAST:event_jMenuItem14ActionPerformed

    /*ADMINISTRACION*/
    public void addBuscarEmpleadoMenutItem(ActionListener listener) {
        JMenuItem jmEmpleado = this.menuBar.getMenu(0).getItem(0);
        jmEmpleado.addActionListener(listener);
    }

    public void addBuscarMaquinariaMenutItem(ActionListener listener) {
        JMenuItem jmMaquinaria = this.menuBar.getMenu(0).getItem(1);
        jmMaquinaria.addActionListener(listener);
    }

    /*COMPRAS*/
    public void addMantProveedorMenuItem(ActionListener listener) {
        JMenuItem jmMantProveedores = this.menuBar.getMenu(2).getItem(0);
        jmMantProveedores.addActionListener(listener);
    }

    public void addIngresoMateriaPrimaMapaMenuItem(ActionListener listener) {
        JMenuItem jmMateriaPrima = this.menuBar.getMenu(2).getItem(1);
        jmMateriaPrima.addActionListener(listener);
    }

    public void addMantCuentaPorPagarMenuItem(ActionListener listener) {
//        JMenuItem jmCuentaPorPagar = this.menuBar.getMenu(2).getItem(2);
//        jmCuentaPorPagar.addActionListener(listener);
    }

    public void addMantOrdenDeCompraMenuItem(ActionListener listener) {
//        JMenuItem jmOrdenDeCompra = this.menuBar.getMenu(2).getItem(3);
        JMenuItem jmOrdenDeCompra = this.menuBar.getMenu(2).getItem(2);
        jmOrdenDeCompra.addActionListener(listener);
    }

    /*LOGISTICA*/
    public void addMantTipoProductoMenutItem(ActionListener listener) {
        JMenuItem jmTipoProducto = this.menuBar.getMenu(4).getItem(0);
        jmTipoProducto.addActionListener(listener);
    }

    public void addMantAlmacenMenutItem(ActionListener listener) {
        JMenuItem jmAlmacen = this.menuBar.getMenu(4).getItem(1);
        jmAlmacen.addActionListener(listener);
    }

    public void addAceptarPedidoProductoMenutItem(ActionListener listener) {
//        JMenuItem jmAutorizarPedidos = this.menuBar.getMenu(4).getItem(2);
//        jmAutorizarPedidos.addActionListener(listener);
    }

    public void addPedidoProduccionMenutItem(ActionListener listener) {
//        JMenuItem jmPedidoProduccion = this.menuBar.getMenu(4).getItem(3);
        JMenuItem jmPedidoProduccion = this.menuBar.getMenu(4).getItem(2);
        jmPedidoProduccion.addActionListener(listener);
    }

    public void addPedidoCompraItem(ActionListener listener) {
//        JMenuItem jmPedidoCompra = this.menuBar.getMenu(4).getItem(4);
        JMenuItem jmPedidoCompra = this.menuBar.getMenu(4).getItem(3);
        jmPedidoCompra.addActionListener(listener);
    }

    public void addAjustesAlmacenMenuItem(ActionListener listener) {
//        JMenuItem jmAjustesAlmacen = this.menuBar.getMenu(4).getItem(5);
        JMenuItem jmAjustesAlmacen = this.menuBar.getMenu(4).getItem(4);
        jmAjustesAlmacen.addActionListener(listener);
    }

    public void addDetalleKardexMenutItem(ActionListener listener) {
//        JMenuItem jmDetalleKardex = this.menuBar.getMenu(4).getItem(6);
        JMenuItem jmDetalleKardex = this.menuBar.getMenu(4).getItem(5);
        jmDetalleKardex.addActionListener(listener);
    }

    public void addProcesarPedidoItem(ActionListener listener) {
//        JMenuItem jmProcesarPedido = this.menuBar.getMenu(4).getItem(7);
        JMenuItem jmProcesarPedido = this.menuBar.getMenu(4).getItem(6);
        jmProcesarPedido.addActionListener(listener);
    }

    public void addProducirPedidoItem(ActionListener listener) {
//        JMenuItem jmProducirPedido = this.menuBar.getMenu(4).getItem(8);
//        jmProducirPedido.addActionListener(listener);
    }

    public void addReporteProductosMenuItem(ActionListener listener) {
//        JMenuItem jmReporteProductos = this.menuBar.getMenu(4).getItem(9);
//        JMenuItem jmReporteProductos = this.menuBar.getMenu(4).getItem(9);
        JMenuItem jmReporteProductos = this.menuBar.getMenu(4).getItem(8);
        jmReporteProductos.addActionListener(listener);
    }

    public void addReporteKardexMenuItem(ActionListener listener) {
//        JMenuItem jmKardexProductos = this.menuBar.getMenu(4).getItem(10);
        JMenuItem jmKardexProductos = this.menuBar.getMenu(4).getItem(9);
        jmKardexProductos.addActionListener(listener);
    }

    /*VENTAS*/
    public void addMantClienteMenu(ActionListener listener) {
        JMenuItem jmClientes = this.menuBar.getMenu(6).getItem(0);
        jmClientes.addActionListener(listener);
    }

    public void addMantPedidoProdMenu(ActionListener listener) {
        JMenuItem jmPedidos = this.menuBar.getMenu(6).getItem(1);
        jmPedidos.addActionListener(listener);
    }

    public void addMantDocVentaMenu(ActionListener listener) {
        JMenuItem jmDocVenta = this.menuBar.getMenu(6).getItem(2);
        jmDocVenta.addActionListener(listener);
    }

    public void addMantPresentacionMenu(ActionListener listener) {
        JMenuItem jmPresentaciones = this.menuBar.getMenu(6).getItem(3);
        jmPresentaciones.addActionListener(listener);
    }

    public void addMantPrecioMenu(ActionListener listener) {
        JMenuItem jmPrecios = this.menuBar.getMenu(6).getItem(4);
        jmPrecios.addActionListener(listener);
    }

    public void addReporteVentasMenuItem(ActionListener listener) {
        JMenuItem jmReporteVentas = this.menuBar.getMenu(6).getItem(6);
        jmReporteVentas.addActionListener(listener);
    }

    /*SEGURIDAD*/
    public void addMantUsuariosMenu(ActionListener listener) {
        JMenuItem jmMantUsuarios = this.menuBar.getMenu(8).getItem(0);
        jmMantUsuarios.addActionListener(listener);
    }

    public void addMantPerfilesMenu(ActionListener listener) {
        JMenuItem jmMantPerfiles = this.menuBar.getMenu(8).getItem(1);
        jmMantPerfiles.addActionListener(listener);
    }

    public void addMantLogMenu(ActionListener listener) {
        JMenuItem jmLog = this.menuBar.getMenu(8).getItem(3);
        jmLog.addActionListener(listener);
    }

    /*PRODUCCION*/
    public void addMantSimulacionMenu(ActionListener listener) {
        JMenuItem jmSimulador = this.menuBar.getMenu(10).getItem(0);
        jmSimulador.addActionListener(listener);
    }

    public void addMantParametrizacionMenu(ActionListener listener) {
        JMenuItem jmParametrizacion = this.menuBar.getMenu(10).getItem(1);
        jmParametrizacion.addActionListener(listener);
    }

    public void addMantOrdenarProduccionMenu(ActionListener listener) {
        JMenuItem jmOrdenarProduccion = this.menuBar.getMenu(10).getItem(2);
        jmOrdenarProduccion.addActionListener(listener);
    }

    public void addCargaMasivaMenuItem(ActionListener listener) {
//        JMenuItem jmCargaMasiva = this.menuBar.getMenu(10).getItem(3);
        JMenuItem jmCargaMasiva = this.menuBar.getMenu(0).getItem(3);
        jmCargaMasiva.addActionListener(listener);
    }

    public void addMantAtenderPedidosProductoMenu(ActionListener listener) {
//        JMenuItem jmAtenderPedidosProducto = this.menuBar.getMenu(10).getItem(4);
        JMenuItem jmAtenderPedidosProducto = this.menuBar.getMenu(10).getItem(3);
        jmAtenderPedidosProducto.addActionListener(listener);
    }

    public void addPlanDeProduccionMenu(ActionListener listener) {
//        JMenuItem jmPlanDeProduccion = this.menuBar.getMenu(10).getItem(5);
        JMenuItem jmPlanDeProduccion = this.menuBar.getMenu(10).getItem(4);
        jmPlanDeProduccion.addActionListener(listener);
    }

    /*SALIR*/
    public void addSalirListener(ActionListener listener) {
        JMenuItem jmExit = this.menuBar.getMenu(15).getItem(0);
        jmExit.addActionListener(listener);
    }

    public void setCurrentPanel(Component p) {
        this.getContentPane().removeAll();
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(p, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                //  .addComponent(sesionPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap()));
        layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                // .addComponent(sesionPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 663, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(p, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    }
    /**
     * @param args the command line arguments
     */
//    public static void main(String args[]) {
//        /* Set the Nimbus look and feel */
//        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
//        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
//         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
//         */
//        try {
//            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
//                if ("GTK+".equals(info.getName())) {
//                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
//                    break;
//                }
//            }
//        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
//            java.util.logging.Logger.getLogger(MainMenuGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
//        }
//        //</editor-fold>
//
//        /* Create and display the form */
//        java.awt.EventQueue.invokeLater(new Runnable() {
//            public void run() {    
//                //MainMenuGUI sigepaMain = new MainMenuGUI();
//                //MainController mainController = new MainController(sigepaMain);
//                //sigepaMain.setVisible(true);
//            }
//        });
//    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenu jMenu4;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem10;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem22;
    private javax.swing.JMenuItem jMenuItem23;
    private javax.swing.JMenuItem jMenuItem3;
    // End of variables declaration//GEN-END:variables
}
